package cn.tank.data.sync.server.redis.config;

import cn.tank.data.sync.redis.RedisMessagePublisher;
import cn.tank.data.sync.redis.RedisMessageSubscriber;
import cn.tank.data.sync.redis.common.Channel;
import cn.tank.data.sync.server.redis.MessageListenTest;
import cn.tank.data.sync.server.redis.MessageSendTest;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;

/************************************************
 * @Description:数据同步配置
 * @Version: 1.0
 ************************************************/

@Configuration
public class DataSyncConfig {


    @Bean
    public RedisMessagePublisher redisMessagePublisher(RedisTemplate redisTemplate) {

        return new RedisMessagePublisher(redisTemplate);
    }

    @Bean
    public RedisMessageSubscriber redisMessageSubscriber(RedisTemplate redisTemplate) {

        return new RedisMessageSubscriber(redisTemplate);
    }


    @Bean
    public MessageSendTest messageSendTest(RedisMessagePublisher publisher) {

        return new MessageSendTest(publisher);
    }

    @Bean
    public MessageListenTest messageListenTest(RedisMessageSubscriber redisMessageSubscriber) {

        MessageListenTest messageListenTest = new MessageListenTest();
        //设置监听这个频道
        redisMessageSubscriber.createSubscriber(Channel.TEST_CHANNEL, messageListenTest);

        return messageListenTest;
    }


}
